<?php

require_once('conf/DBConnection.php');
require_once('class/class.Entity.php');

/**
 * Plugin para manejo de Noticias
 *
 */
class Noticias extends Entity {

	var $id;
	
	public function __construct() {
		parent::__construct();			
	}
	
	
	/**
	* Retorna las ultimas noticias
	*/
	function getUltimasNoticias() {
		DBConnection::getInstance();
		$query = "SELECT N.id, N.titulo, N.resumen, N.contenido, N.fecha, NI.filename, N.categoria, N.seccion"
				." FROM noticias N"
				." LEFT OUTER JOIN imagenes NI"
				." ON NI.id = N.imagesid"
				." WHERE N.borrado = 0 AND N.activo = 1"
				." ORDER BY orden,fecha DESC LIMIT 0,3";
		$result = mysql_query($query);	
		//echo $query;	
		return $this->fetch($result);
	}
	
	/**
	 * Retorna las ultimas noticias
	 */
	function getNoticias($categoria, $limit) {
		if (isset($categoria))
			$condition = "AND categoria = '$categoria'";
		DBConnection::getInstance();
		$query = "SELECT N.id, N.titulo, N.resumen, N.contenido, N.fecha, NI.filename, N.categoria, N.seccion"
				." FROM noticias N"
				." LEFT OUTER JOIN imagenes NI"
						." ON NI.id = N.imagesid"
								." WHERE N.borrado = 0 $condition"
								." ORDER BY orden,fecha DESC $limit";
								$result = mysql_query($query);
		//echo $query;
		// agrego las imagenes
		if ($result[imagecount] > 0)
			$result[images] = $this->getImagenes($id);
		return $this->fetch($result);
		}
		
	/**
	 * Retorna la cantidad de noticias
	 */
	function countNoticias() {
		DBConnection::getInstance();
		$query = "SELECT count(*) as cantidad "
				." FROM noticias N"
				." WHERE N.borrado = 0";
		$result = mysql_query($query);
		$result = $this->fetch($result);
		//echo $query;
		return $result[0][cantidad];
	}

	/**
	* Retorna una noticia por ID
	*/
	function getById($id) {
		DBConnection::getInstance();
		$query = "SELECT *"
				." FROM noticias N"
				." WHERE N.borrado = 0"
				." AND N.id = %ID%";
		$query = str_replace("%ID%", $id, $query);
		$result = mysql_query($query);
		$result = $this->fetch($result);
		//echo $query;
		$result = $result[0];
		
		// agrego las imagenes
		if ($result[imagecount] > 0)
			$result[images] = $this->getImagenes($id);
		//print_r($result);
		return $result;
	}

	
	/**
	 * Retorna todas las imagenes de una noticia
	 * @param Noticia Id $id
	 * @return List<Images>
	 */
	function getImagenes($idNoticia) {
		DBConnection::getInstance();
		$query = "SELECT id, filename, description"
				." FROM imagenes"
				." WHERE iditem = $idNoticia AND tablename='noticias'";
		//echo $query;
		$result = mysql_query($query);
		return $this->fetch($result);
	}
	
	
	/**
	 * Retorna una imagen por id
	 * @param Noticia Id $id
	 * @return List<Images>
	 */
	function getImagen($id) {
		DBConnection::getInstance();
		$query = "SELECT id, filename, description"
				." FROM imagenes"
				." WHERE id = $id";
		$result = mysql_query($query);
		$result = $this->fetch($result);
		//echo $query;
		return $result[0];
	}
}

